<div class="col-xs-12 col-md-12 col-lg-12 padding-none lists">
    <div class="col-md-12  rule-lists">
        <?php echo $data?>
    </div>
</div>
<script>
    $(function(){

        //授权规则全选反选
        $('input[type="checkbox"]','.rules').click(function(){
            var _this = $(this);

            var id = _this.attr('id');

            var pid = _this.attr('pid');

            var isChecked = _this.is(':checked');

            //_child(id,isChecked);
            //_parent(pid,_this);
            _child(id,isChecked);
            _parent(pid,_this);
        });

    });

    function _child(id,isChecked){

        //获取所有当前节点子节点
        var _childNote = $('input[pid="'+id+'"]');


        if(_childNote.length > 0){

            //如果有子节点,改变节点状态
            _childNote.each(function(){

                this.checked = isChecked;

                var id = $(this).attr('id');

                //递归检测
                _child(id,isChecked);

            });

        }else{
            return false
        }
    }

    function _parent(pid,_this){


        var _parentNote = $('input[id="'+pid+'"]');

        if(_parentNote.length < 1)return false;
        //判断当前节点所有兄弟节点是否有选中

        var $brothers = _this
                .parent()
                .parent()
                .children('label')
                .children();

        //
        var isAllChecked = false;

        var _parentNote = $('input[id="'+pid+'"]');

        var _ppid = _parentNote.attr('pid');

        //检测当前节点的兄弟节点是否有选中, 只要有一个是选中的  父级就为选中状态
        $brothers.each(function(){

            if(this.checked){

                isAllChecked = true;

            }

        });

        //设置父级状态
        if(isAllChecked){

            _parentNote[0].checked = true;

        }else{

            _parentNote[0].checked = false;

        }

        //递归检测
        _parent(_ppid,_parentNote);

    }
</script>